﻿using System.Windows.Controls;
using DALHelper.Business;
using System.Windows;
using System.Collections.ObjectModel;
using System;

namespace ResortManager.Wizard
{
    /// <summary>
    /// Interaction logic for DefaultConfiguration1.xaml
    /// </summary>
    public partial class COConfig0 : UserControl, IProceedureComponent
    {
        private pgLookupTrans m_pgLookupTrans;

        public COConfig0()
        {
            InitializeComponent();
            m_pgLookupTrans = new pgLookupTrans();
            m_pgLookupTrans.KeepAlive = false;
            frmTransLookup.Navigate(m_pgLookupTrans);
            m_pgLookupTrans.Width = frmTransLookup.Width;
            m_pgLookupTrans.Height = frmTransLookup.Height;
        }

        #region IProceedureComponent Members

        public string KeyText
        {
            get { return "Chọn đoàn"; }
        }

        public bool RequestNext()
        {
            if (m_pgLookupTrans.SelectedTransaction != null)
            {
                try
                {
                    CheckOutData coData = ((CheckOutData)ParentWizard.WizardCommonData);
                    BusinessManager busManager = ((App)App.Current).BUSManager;
                    coData.TransactionID = m_pgLookupTrans.SelectedTransaction.TransactionID;
                    coData.TransDetailData = new ObservableCollection<TransDetail>(busManager.Transaction.QueryTransactionDetail(coData.TransactionID));
                    if (coData.TransDetailData.Count <= 0)
                        throw new Exception("Đoàn chưa nhận phòng, hoặc đã trả phòng xong!");
                    return true;
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Có lỗi xảy ra.\r\nTạm thời không thể trả phòng cho đoàn này.\r\nVui lòng thử lại sau\r\n\r\n" + ex.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
            else
            {
                MessageBox.Show("Bạn phải chọn một đoàn khách để cập nhật!", "Error", MessageBoxButton.OK, MessageBoxImage.Error);
            }
            return false;
        }

        public void UpdateComponent()
        {
            m_pgLookupTrans.UpdateData();
        }

        public ProceedureDialog ParentWizard
        {
            get;
            set;
        }

        #endregion
    }
}
